# 通过生成器完成以下功能
# 创建函数gen_file,传递一个文件路径
# 在函数内部，每次读取10行放入到列表，通过yield返回
# gen_file('/etc/passwd')
def gen_file(path):
    data_list = []
    with open(path, mode='r') as fr:
        # 循环读取每一行
        while True:
            data = fr.readline()
            if not data:
                break
            # 将读取的这一行数据添加到列表
            data_list.append(data)
            # 如果列表中已经达到了10行，通过yield返回
            if len(data_list) == 10:
                yield data_list
                # 下一次读之前，需要把之前列表中的10行清空
                data_list.clear()
    # 判断列表中是否还有数据，如果有说明没有达到10
    if len(data_list) > 0:
        yield data_list
if __name__ == '__main__':
    gen = gen_file('/etc/passwd')
    # print(gen)
    for item in gen:
        print(item)